import java.util.*;
/**
 * Implementierung der BusinessLayer Klasse Lehrveranstaltung, implementiert das Interface BLCRUD für Create, Read, Update und Delete Operationen auf einer Aufzählung.
 * 
 * @author Kai Gutzeit
 * @version 13.12.2014
 */
public class BLLehrveranstaltung implements BL_CRUD<Lehrveranstaltung>
{
    // Instanzvariable welche die Referenz der Geschäftsobjekte in einer Aufzählung beinhaltet.
    private List<Lehrveranstaltung> lehrveranstaltungen;

    /**
     * Konstruktormethode welche die Referenz zu den vorhandene Lehrveranstaltungen übergeben bekommt.
     * 
     * @param  iLehrveranstaltungen Eine Referenz zur Aufzählung der verfügbaren Lehrveranstaltungen.
     */
    public BLLehrveranstaltung(List<Lehrveranstaltung> iLehrveranstaltungen)
    {
        lehrveranstaltungen = iLehrveranstaltungen;
    }

    /**
     * Implementierung der Create Methode aus dem Interface BL_CRUD
     * 
     * @param  iBusinessObject Übergibt die Referenz zu einem Lehrveranstaltung, welche der Referenz der privaten Variable iLehrveranstaltungen hinzugefügt wird.
     * 
     * @return Der erstellte Lehrveranstaltung mit einer eindeutig erzeugten UUID als ID.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Lehrveranstaltung Create(Lehrveranstaltung iBusinessObject) throws IllegalArgumentException{
        return null;
    }
    
     /**
     * Die Read Methode erlaubt es anhand eines eindeutigen Schlüssel einen Lehrveranstaltung aus der Aufzählung iLehrveranstaltungen zu erhalten. 
     * 
     * @param  id  Es wird eine eindeutige id vom Typ UUID übergeben um den Lehrveranstaltung eindeutig identifizierbar zu machen.
     * 
     * @return Das zu lesende Objekt vom Typ Lehrveranstaltung.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Lehrveranstaltung Read(UUID id) throws Exception{
        return null;
    }
    
     /**
     * Die Update Methode übermittelt ein komplettes Objekt vom Typ Lehrveranstaltung und sorgt für das aktualisieren des jeweiligen Objektes in der privaten Aufzählung iLehrveranstaltungen.
     * 
     * @param  iBusinessObject Es wird das zu aktualisierende Objekt vom Typ Lehrveranstaltung übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Update-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Update(Lehrveranstaltung iBusinessObject) throws Exception{
        return null;
    }
    
     /**
     * Die Delete Methode bekommmt eine id als UUID Objekt übergeben, welches das Objekt vom Typ Lehrveranstaltung aus einer Aufzählung eindeutig identifiziert und anschließend entfernt.
     * 
     * @param  UUID id Es wird eine eindeutige id vom Typ UUID übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Delete-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Delete(UUID id) throws Exception{
        return null;
    }
}
